Tableau Desktopでユーザーフィルターを設定して、見る人によって違うデータが表示されるようにする #tableau
はじめに
こんにちは。大阪オフィス唯一のDI部メンバー、tamaです。
今回はTableauのユーザーフィルターという機能についてご紹介します。(本エントリも、最初はTableau Server認定資格絡みのシリーズとして書こうと思ってたのですが、どうも試験ガイドに記載が無いっぽいので、通常シリーズとして投下します。)
ユーザーフィルターとは?
その会社(または部署)にとって大事なデータを扱ったワークブック(ビュー)は、閲覧できる人を制限したいですよね。Tableau Desktopだけであれば、.twbxファイルを、アクセスが限られた共有フォルダに置く等で対応できます。Tableau Serverを導入していれば、その豊富な権限設定で、アクセスを非常に柔軟に設定することができます。
しかし、上記はワークブック(ビュー)そのものに対してのセキュリティです。
ユーザーによっては、このようなニーズもあると思います。「同じワークブックを見てほしいんだけど、あるユーザーが見た時だけ、このデータが表示されないようにしたい」
同じビュー内で、閲覧ユーザーによって表示を変えたい…要するにユーザーを起点としたフィルターをかけたいということです。Tableauではこれを「行レベルのセキュリティ」と呼んでいます。
この機能は「ユーザーフィルター」という機能を使えば、実現可能です。ユーザーフィルターには2種類あるのですが、今回はマニュアルのユーザーフィルターを見ていきます。
マニュアルのユーザーフィルター
各ユーザーがアクセスできるデータを手動で設定するユーザーフィルターです。実際にやってみたいと思います。
まず、ユーザーフィルターを設定したいワークブックを開きましょう。そして、上部メニューから、まずTableau Serverにサインインします。
Tableau Serverにサインインすると、Tableau Desktopの右下に自分のユーザー名が表示されます。
上記について確認できたら、またメニューの「サーバー」を選んで、「ユーザーフィルターの作成」を選びます。すると、その単位でフィルターをかけたいか選ぶメニューが出てきます。今回は都道府県毎にフィルタリングしたいと思うので、「都道府県」を選択します。
今回は、「藤波辰爾」というユーザーが見た時だけ、奈良県のみにフィルターがかかるようにします。つまり、「藤波辰爾」というユーザーは、このワークブックでは、奈良県のデータしか見れなくなります。画面通り設定したら、OKを選択しましょう。
※ここで、見落としそうなのが、他のユーザーについてです。他のユーザーに対して制限をかけない場合は、ちゃんと他のユーザーではフィルターをかけないように明示的に設定する必要があります。(設定しておかないと、全部表示しないようになってしまう)
ユーザーフィルター自体はこれで作成できました。では、このユーザーフィルターをどのように適用すればいいのでしょうか。実は、このユーザーフィルターは「セット」扱いとなります。セットの欄を見てみると、先程作成したユーザーフィルターができているので、これをフィルターにドラッグしましょう。
※この方法の場合、ユーザーフィルターはコンテキストフィルターとして認識されます。
これでユーザーフィルターが適用されました。実際にフィルタリングされているか確認しましょう…といきたいところですが、確認のたびに毎回パブリッシュして、そのユーザーに確認をお願いするのは面倒です。また、設定が間違っていて、見られたくないデータを見られてしまうリスクもあります。
そういう時のために、Tableau Desktop上で擬似的にユーザーフィルターをプレビューできる機能があります。画面右下のユーザー名が表示されているところを選択して、ユーザーフィルターの対象となっているユーザー名を選択すると、そのユーザーが見た時のフィルター結果が表示されます。
「坂口征二」というユーザーはフィルターをかけてないので、全データが見えています。
「藤波辰爾」というユーザーに切り替えると、奈良県しか表示されません。ちゃんとユーザーフィルターが機能していますね。
後は、このワークブックをパブリッシュすれば、「ユーザー毎にフィルターをかけたワークブック」の完成です。
注意点
ユーザーフィルターは便利ですが、手動で設定する必要があるため、ユーザーが増えた場合の対応が面倒という弱点があります。…実は、そういう時のための「自動でユーザーフィルターをかける」機能があるのですが、それは別のエントリで紹介したいと思います。
おわりに
今回は手動のユーザーフィルターについて見てきました。データ自体を分けてしまって、ユーザー毎にワークブックを作成して死にそうなユーザーにはとても魅力的な機能だと思います。ただし、何でもかんでもユーザーフィルターで制限をかける運用も、それはそれで大変だと思うので、自社の要件に合わせて、バランスのいい運用をこころがけたいですね。